﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Ucb.Workshop.WinApp.View.GestionCredito;
using Ucb.Workshop.Business;
using Ucb.Workshop.Dal;
using Ucb.Workshop.Model;


namespace Ucb.Workshop.WinApp.View.GestionCompra
{
    public partial class BuscadorCompra : UserControl
    {
        DBManager conexion;
        Compras compra;

        public Compras Compra
        {
            get { return compra; }
            set { compra = value; }
        }
        ControlRegistroCredito ctrlCredito;
        int opc;

        public BuscadorCompra()
        {
            conexion = new DBManager();
            compra = null;
            InitializeComponent();
            //
                      
        }

        public void setOpc(int opc)
        {
            this.opc = opc;
        }

        public void setCredito(ControlRegistroCredito ctrlCredito)
        {
            this.ctrlCredito = ctrlCredito;
        }

        public void llenarGridCompraDeuda(string buscarEmpresa)
        {
            string consulta = "SELECT DISTINCT(c.cod_compra), c.fecha, prov.empresa, c.total, c.deuda FROM compra c, detalle_compra dc,provee pv, proveedor prov WHERE c.estado = 'COMPRA_DEUDA' AND c.cod_compra = dc.cod_compra AND dc.cod_provee = pv.cod_provee AND pv.cod_proveedor = prov.cod_proveedor AND prov.empresa LIKE '%" + buscarEmpresa + "%'";
            conexion.LlenarGrid(gridCompras, consulta);


            gridCompras.Columns[0].Visible = false;
            gridCompras.Columns[1].HeaderText = "Fecha";
            gridCompras.Columns[2].HeaderText = "Empresa";
            gridCompras.Columns[3].HeaderText = "Total Compra";
            gridCompras.Columns[4].HeaderText = "Deuda Compra";
        }

        public void llenarGridCompra(string buscarEmpresa)
        {
            string consulta = "SELECT DISTINCT(c.cod_compra), c.fecha, prov.empresa, c.total, c.deuda FROM compra c, detalle_compra dc,provee pv, proveedor prov WHERE c.estado = 'COMPRA_DEUDA' AND c.cod_compra = dc.cod_compra AND dc.cod_provee = pv.cod_provee AND pv.cod_proveedor = prov.cod_proveedor AND prov.empresa LIKE '%" + buscarEmpresa + "%'";
            conexion.LlenarGrid(gridCompras, consulta);


            gridCompras.Columns[0].Visible = false;
            gridCompras.Columns[1].HeaderText = "Fecha";
            gridCompras.Columns[2].HeaderText = "Empresa";
            gridCompras.Columns[3].HeaderText = "Total Compra";
            gridCompras.Columns[4].HeaderText = "Deuda Compra";
        }


        public string datoGrid(int fila, int columna)
        {
            return gridCompras.Rows[fila].Cells[columna].Value.ToString();
        }

        private void txtBuscarEmpresa_TextChanged(object sender, EventArgs e)
        {
            ejecutarSeleccion();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ejecutarSeleccion();
        }

        public void ejecutarSeleccion()
        {
            switch (opc)
            {
                case 1:
                    llenarGridCompraDeuda(txtBuscarEmpresa.Text);
                    break;
                case 2:
                    llenarGridCompra(txtBuscarEmpresa.Text);
                    break;
                default: break;
            }
        }

        public void seleccionar()
        {
            switch (opc)
            {
                case 1:
                    ctrlCredito.Compra = this.Compra;
                    break;
                case 2:
                    
                    break;
                default: break;
            }
        }

        private void gridCompras_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int fila = e.RowIndex;
            int columna = e.ColumnIndex;
            int numerofilas = gridCompras.Rows.Count;

            if (numerofilas > 0 && fila > -1)
            {
                // Capturamos los datos 
                Compras c = new Compras();


                c.CodCompra = int.Parse(datoGrid(fila, 0));
                c.Fecha = DateTime.Parse(datoGrid(fila, 1));
                c.Total = float.Parse(datoGrid(fila, 3));
                c.Deuda = float.Parse(datoGrid(fila, 4));

                this.Compra = c;
                this.seleccionar();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }
    }
}
